using System;
using System.Diagnostics;

namespace Bing
{
    /// <summary>
    /// Contains properties related to an image returned for a request to the Image SourceType.
    /// </summary>
    [DebuggerDisplay("Title: {Title}, DisplayUrl: {DisplayUrl}")]
    public class ImageResult: IWebImage
    {

        /// <summary>
        /// Gets or sets the title of the image..
        /// </summary>
        /// <value>Returns the title of the image.</value>
        public string Title { get; set; }

        /// <summary>
        /// Gets or sets the URI to the full-size image.
        /// </summary>
        /// <value>Returns the URI to the full-size image.</value>
        public string MediaUrl { get; set; }

        /// <summary>
        /// Gets or sets the URI of the website that contains a returned image.
        /// </summary>
        /// <value>Returns the URI of the website that contains a returned image.</value>
        public string Url { get; set; }

        /// <summary>
        /// Gets or sets the URL that is displayed on the Search Results page.
        /// </summary>
        /// <value>Returns the URL that is displayed on the Search Results page.</value>
        public string DisplayUrl { get; set; }

        /// <summary>
        /// Gets or sets the width of the full-size image in pixels, if available.
        /// </summary>
        /// <value>Returns the width of the full-size image in pixels, if available.</value>
        public UInt32 Width { get; set; }

        /// <summary>
        /// Gets or sets the height of the full-size image in pixels, if available.
        /// </summary>
        /// <value>Returns the height of the full-size image in pixels, if available.</value>
        public UInt32 Height { get; set; }

        /// <summary>
        /// Gets or sets the size, in bytes, of the full-size image file (if this information is available).
        /// </summary>
        /// <value>Size, in bytes, of the full-size image file (if this information is available).</value>
        public UInt32 FileSize { get; set; }

        /// <summary>
        /// Gets or sets the thumbnail of the image.
        /// </summary>
        /// <value>The thumbnail of the image.</value>
        public Thumbnail Thumbnail { get; set;}
    }
}